每個外觀都可以去設定各自屬性
<solid
android:color="#4F4F4F" />
<padding
android:top="10dp"
android:right="10dp"
android:bottom="10dp"
android:left="10dp" />
left:左邊間距
right:右邊間距
top:上邊間距
bottom:下邊間距
<gradient
android:type="linear"
android:centerX="50%"
android:startColor="#E80707"
android:centerColor="#11A800"
android:endColor="#0066FF"
android:angle="45" />
<gradient
android:type="radial"
android:centerX="50%"
android:centerY="50%"
android:startColor="#E80707"
android:centerColor="#11A800"
android:endColor="#0066FF"
android:gradientRadius="150" />
startColor 開始顏色
endColor 結束顏色
centerColor 中間顏色
centerX 漸層中心X坐標
centerY 漸層中心Y坐標
angle 漸層的角度,線性漸變(linear )才須設置
gradientRadius 漸變的半徑,放射漸變(radial )才須設置
<corners
android:radius="10dp" />
radius 四個角的半徑
也可以設定各自的角
<corners
android:topLeftRadius="10dp"
android:topRightRadius="5dp"
android:bottomLeftRadius="15dp"
android:bottomRightRadius="20dp"/>
topLeftRadius 左上角的半徑
topRightRadius 右上角的半徑
bottomLeftRadius 左下角的半徑
bottomRightRadius 右下角的半徑
<stroke
android:width="1dp"
android:color="#870000" />
width 框線的寬度
color 框線的顏色
<?xml version="1.0" encoding="utf-8"?>
<!-- 類型 -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- 圓角 -->
<corners
android:topLeftRadius="10dp"
android:topRightRadius="10dp"
android:bottomLeftRadius="10dp"
android:bottomRightRadius="10dp" />
<!-- 漸層 -->
<gradient
android:angle="45"
android:centerX="50%"
android:centerColor="#11A800"
android:startColor="#E80707"
android:endColor="#0066FF"
android:type="linear" />
<!-- 文字與邊框間距 -->
<padding
android:left="5dp"
android:top="5dp"
android:right="5dp"
android:bottom="5dp" />
<!-- 邊框 -->
<stroke
android:width="1dp"
android:color="#870000" />
</shape>
也可以直接在xml直接加
這樣基本上就大功告成了
有些人發現全部都照做了甚至程式碼都一模一樣,結果只改變圓角而已,顏色什麼的都沒變。
原因是新版本的主題問題導致
解決方法:
將app/res/values目錄下的themes點開
有一行
<style name="Theme.Button_demo" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
把這行改成
<style name="Theme.Button_demo" parent="Theme.MaterialComponents.DayNight.DarkActionBar.Bridge">